fix: update, delete, accept, decline all occurrences - #7600
fix: update, delete, accept, decline all occurrences#7600SebastianKrupinski wants to merge 1 commit into
Conversation
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
|
Hi, |
|
Hello, that's a big problem for us too. It would be great if that could be fixed soon. |
b9f5658 to
43c8c49
Compare
|
@SebastianKrupinski ; may this PR resolve #6146 as well ? |
That is the idea, I just need to figure out the best work flow logic. |
928f361 to
9b343a4
Compare
|
PHP errors are unrelated |
9b343a4 to
ebf29dc
Compare
|
/backport to stable6.6 |
|
@odzhychko should be good now |
8b424b7 to
cc7fd03
Compare
odzhychko
left a comment
There was a problem hiding this comment.
Tested. Works as expected.
Aside from the failing tests,
https://github.com/nextcloud/calendar/pull/7600/changes#r3878791313 might be a blocking issues.
| @@ -154,16 +185,10 @@ export default { | |||
| async setParticipationStatus(participationStatus) { | |||
There was a problem hiding this comment.
nit(non-blocking): changeAttendeesParticipationStatus is not unused.
32619c4 to
c26c525
Compare
|
@odzhychko Do you mind giving this one last test!? |
odzhychko
left a comment
There was a problem hiding this comment.
Looked and tested the fix for the last issue.
Found two broken edge case with regards to saving series.
I've seen that some more code changed in the meanwhile.
I'll try to look at it and retest PR from scratch after the know issues are fixed ^^
56588d5 to
afb5911
Compare
|
|
||
| if (eventComponent.isDirty()) { | ||
| const isForkedItem = eventComponent.primaryItem !== null | ||
| if (eventComponent.isDirty() && eventComponent.isPartOfRecurrenceSet() && scope === 'series') { |
There was a problem hiding this comment.
issue: updating date of series master silently loses exception
Caused by nextcloud/calendar-js#923 (comment)
- Create event "X"
- full-day
- start date 31 August 2026
- repeat weekly on Friday
- Edit recurrence on the 18 September 2026
- change name to "Xa"
- set date to 19 September 2026
- Save with "Update this occurrence"
- Edit the first event (4 September 2026)
- Set name to "Xb"
- Set date to 2 September 2026
- Save with "Update entire series"
- Expected behavior
- All instances of "X" are renamed to "Xb"
- Exception "Xa" remains on the 19 September
- Other possible expected behaviour
- Dialog warning user that the exception "Xa" will be deleted
- Dialog having option to cancel operation
- Actual behaviour
- Exception "Xa" is silently lost
(Tested with changes from nextcloud/calendar-js#923)
There was a problem hiding this comment.
I was pretty sure.
I event build a local version of the latest changes in calendar-js.
But will retest again and make sure I'm testing with the latest changes.
Could we make a release of https://github.com/nextcloud/calendar-js first and use it here?
This will reduce the chance of testing the wrong version.
There was a problem hiding this comment.
Could we make a release of https://github.com/nextcloud/calendar-js first and use it here?
This will reduce the chance of testing the wrong version.
Already in the process of doing it
There was a problem hiding this comment.
Tested it together and could reproduce it. But it only happens on the first edit of the series. On subsequent changes to the series the start date of the series and the first recurrences align and this issue does not occur anymore.
bb6f0c0 to
52aacab
Compare
Manual test — recurring event save/delete scopesSetup: create one non-recurring event, and one recurring event (e.g. weekly, 5+ occurrences) with no exceptions yet, in a writable calendar. Non-recurring events
Recurring series — editing the first/primary occurrence
Recurring series — editing an nth (non-primary) occurrence
Existing recurrence exceptions (an occurrence already moved/edited once)
Edge cases
|
4af4be7 to
e61963f
Compare
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
e61963f to
7a1ac72
Compare

Summary
Logic Changes
As organizer all actions, update and delete, are applicable to either the this occurrence, this occurrence and all future, and all occurrences, this is manually controlled with no "why did this happen"
When editing a base/primary occurrence "this occurrence" and "This and future" updates/deletes are not permitted
When editing a occurrence exemption "this series" updates/deletes are not permitted
When editing a occurrence time updates with "this series" are not permitted as this can truncate the series history, to change the time of the entire series you must edit the first occurrence